let app = getApp()
Page({


  /**
   * 获取文章列表数据
   */
  getArticles() {
    wx.request({
      url: this.data.url + 'course/list',
      data: {
        pageNum: this.data.pageNum,
        pageSize: this.data.pageSize
      },
      success: res => {
        this.setData({
          articles: res.data.data.list 
        })
        console.log(this.data.articles);
      },
      fail: err => {
        console.error('获取文章列表失败:', err)
      }
    })
  },
  /**
   * 页面的初始数据
   */
  data: {
    // 分页相关
    pageNum: 1,
    pageSize: 3,
    
    // 基础数据
    url: '',
    articles: [],  // 文章列表
    randomBannerList: [],  // 轮播图列表
    
    // 浮动球相关数据
    ballLeft: 280,    // 球的left位置（默认初始值）
    ballTop: 400,     // 球的top位置（默认初始值）
    startX: 0,        // 触摸开始的X坐标
    startY: 0,        // 触摸开始的Y坐标
    windowWidth: 0,   // 屏幕宽度
    windowHeight: 0,   // 屏幕高度

    user:'',
  },
  nav1(){  
    if (this.data.user==null || this.data.user=='') {
      wx.showModal({
        title: '未登录',
        content: '请先登录',
        complete: (res) => {
          if (res.cancel) {
            wx.switchTab({
              url: '/pages/home/home',
            })
          }
      
          if (res.confirm) {
            wx.navigateTo({
              url: '/pages/login/login',
            })
          }
        }
      })
    }else{
      wx.navigateTo({
        url: '/pages/home/psych/postQuestion/postQuestion',
      })
    }
  },

  /**
   * 获取文章列表数据
   */
  getzxkf(){
    wx.navigateTo({
      url: '/pages/home/zaixiankefu/zaixiankefu',
    })
  },
  getArticles() {
    wx.request({
      url: this.data.url + 'SeleArt/page',
      data: {
        pageNum: this.data.pageNum,
        pageSize: this.data.pageSize
      },
      success: res => {
        this.setData({
          articles: res.data.data.list
        })
        console.log(this.data.articles);
      },
      fail: err => {
        console.error('获取文章列表失败:', err)
      }
    })
  },

  /**
   * 获取轮播图列表
   */
  getBannerList() {
    wx.request({
      url: this.data.url + 'carousel',
      method: 'GET',
      success: (resp) => {
        if (resp.data.code === 200) {
          const allBanner = resp.data.data;
          const randomList = this.shuffleArray(allBanner);
          this.setData({
            randomBannerList: randomList
          });
        }
      },
      fail: (err) => {
        console.error("获取轮播图失败", err)
      }
    });
  },

  /**
   * 数组随机排序
   */
  shuffleArray(arr) {
    const newArr = [...arr];
    for (let i = newArr.length - 1; i > 0; i--) {
      const j = Math.floor(Math.random() * (i + 1));
      [newArr[i], newArr[j]] = [newArr[j], newArr[i]];
    }
    return newArr;
  },

  /**
   * 浮动球触摸开始
   */
  handleTouchStart(e) {
    this.setData({
      startX: e.touches[0].clientX,
      startY: e.touches[0].clientY
    });
  },

  /**
   * 浮动球触摸移动
   */
  handleTouchMove(e) {
    // 计算移动的距离
    const moveX = e.touches[0].clientX - this.data.startX;
    const moveY = e.touches[0].clientY - this.data.startY;
    
    // 计算新位置
    let newLeft = this.data.ballLeft + moveX;
    let newTop = this.data.ballTop + moveY;
    
    // 限制边界（浮动球大小设为60px）
    const ballSize = 60;
    newLeft = Math.max(0, Math.min(newLeft, this.data.windowWidth - ballSize));
    newTop = Math.max(0, Math.min(newTop, this.data.windowHeight - ballSize));
    
    // 更新位置
    this.setData({
      ballLeft: newLeft,
      ballTop: newTop,
      startX: e.touches[0].clientX,
      startY: e.touches[0].clientY
    });
  },

  /**
   * 浮动球触摸结束（自动吸附边缘）
   */
  handleTouchEnd() {
    // 自动吸附到最近的屏幕边缘
    const halfWidth = this.data.windowWidth / 2;
    const ballSize = 60;
    if (this.data.ballLeft < halfWidth) {
      this.setData({ ballLeft: 0 });
    } else {
      this.setData({ ballLeft: this.data.windowWidth - ballSize });
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

    // 获取全局URL
    this.setData({
      url: app.globalData.url
    })
    
    // 获取屏幕尺寸
    const res = wx.getSystemInfoSync();
    this.setData({
      windowWidth: res.windowWidth,
      windowHeight: res.windowHeight
    });
    
    // 加载数据
    this.getArticles();
    this.getBannerList();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.setData({
      user:wx.getStorageSync('user'),
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    // 下拉刷新时重新加载数据
    this.getArticles();
    this.getBannerList();
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // 可以添加加载更多功能
    // this.setData({ pageNum: this.data.pageNum + 1 });
    // this.getArticles();
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})
